package com.luhuiguo.cms.client.widget;

import com.extjs.gxt.ui.client.data.BaseModelData;

/**
 * 
 * @author LuHuiguo
 * @version $Id: LabelValue.java 163 2010-05-10 15:36:28Z luhuiguo@gmail.com $
 * @param <T>
 */
public class LabelValue<T> extends BaseModelData {

    /**
     * 序列化版本号。
     */
    private static final long serialVersionUID = 1433022652921453464L;

    /**
     * 显示标签属性。
     */
    public static final String LABEL = "label";

    /**
     * 实际值属性。
     */
    public static final String VALUE = "value";

    /**
     * 以显示标签和实际值构造对象。
     * 
     * @param label
     *            显示标签
     * @param value
     *            实际值
     */
    public LabelValue(String label, T value) {
        super();
        setLabel(label);
        setValue(value);

    }

    /**
     * @return the label
     */
    public String getLabel() {
        return get(LABEL);
    }

    /**
     * @param label
     *            the label to set
     */
    public void setLabel(String label) {
        set(LABEL, label);
    }

    /**
     * @return the value
     */
    @SuppressWarnings("unchecked")
    public T getValue() {
        return (T)get(VALUE);
    }

    /**
     * @param value
     *            the value to set
     */
    public void setValue(T value) {
        set(VALUE, value);
    }

    /**
     * {@inheritDoc}
     * 
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return getLabel();
    }

}
